home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / TEXT_UTL / TEXTIO / TEXTDEMO.PAS next >
Pascal/Delphi Source File  |  1989-01-29  |  3KB  |  110 lines

  1. PROGRAM TextDemo;
  2.  
  3. {Demo of TextIO unit
  4.  
  5.    demonstration of useful text i/o features with turbo pascal:
  6.  
  7.      1. large text buffers for speedier handling when needed
  8.      2. complete seek function for text files
  9.      3. write formatted output to a string variable
  10.      4. read contents of a string variable as formatted input
  11.  
  12.    language:  turbo pascal macintosh "(*MAC-  -MAC*)" comments
  13.          or:  turbo pascal 4.0 ibm.  "(*IBM-  -IBM*)" comments
  14.  
  15.    by d.g.gilbert
  16.    dogStar software
  17.    po box 302, bloomington, in 47402
  18.    compuserve  71450,1570
  19.  
  20.    Translated to a unit by Mike Babulic,  (Jan.25,1989)
  21.                            3827 Charleswood Dr. N.W.
  22.                            Calgary, Alberta, CANADA
  23.                            T2L 2C7
  24.                            compuserve: 72307,314
  25. }
  26.  
  27. {$R-}   { Turn off range checking       }
  28. {$I-}   { Turn off I/O error checking   }
  29.  
  30. (*IBM-*)
  31.  USES  DOS,
  32. (*-IBM*)
  33. (*MAC-
  34.  USES  memTypes, quickDraw, osIntf, toolIntf,
  35. -MAC*)
  36.    TextIO;
  37.  
  38. CONST
  39.      BUFSIZE = 32000; { a big text buffer}
  40. VAR
  41.      ch:char;
  42.      f: text;
  43.      s: STRING;
  44.      i: integer;
  45.      r: real;
  46.      b: boolean;
  47.      index: longint;
  48. BEGIN
  49.   writeln;
  50.   writeln('useful Turbo Pascal Text I/O features');
  51.   writeln('by d.g.gilbert, Dec87');
  52.   writeln;
  53.  
  54.   write('File to Open: '); readln( s);
  55.   IF openText( f, s, forInput, BUFSIZE) THEN BEGIN
  56.    REPEAT
  57.     write('Seek type 0)set, 1)current, 2)end : '); readln( i);
  58.     IF i IN [0..2] THEN BEGIN
  59.       write('Seek index: '); readln( index);
  60.       seekText( f, index, seekType(i));
  61.       readln( f, s); writeln('> ',s);
  62.       END;
  63.    UNTIL NOT (i IN [0..2]);
  64.    CloseText(f);
  65.   END;
  66.  
  67.   IF OpenText(f,'TEXTDEMO.TST',forOutput, BUFSIZE) THEN BEGIN
  68.     writeln; writeln('Testing BackLn(f)...');
  69.  
  70.     writeln('   Writing');
  71.     writeln(f,'LINE 1');
  72.     writeln(f,'LINE 2');
  73.     writeln(f,'LINE 3');
  74.     BackLn(f);
  75.     Writeln(f,'000004');
  76.     index := PosText(f);
  77.     close(f);
  78.  
  79.     writeln('   Reading');
  80.     reset(f);
  81.     repeat
  82.       readln(f,s);
  83.       writeln('      ',s);
  84.     until 'LINE'<>Copy(s,1,4);
  85.     BackLn(f);
  86.     read(f,index);
  87.     writeln('      integer = ',index);
  88.  
  89.     CloseText(f);
  90.   END;
  91.  
  92.   writeln;writeln('Testing formatted output to a string');
  93.   i:= 99; r:= 12.34; b:= true;
  94.   openStrIO( f, s, forOutput);
  95.   writeln( f, i:10, r:10:3, b:5);
  96.   closeStrIO( f, s);
  97.   writeln('The formatted string is:');
  98.   writeln( s);
  99.  
  100.   i:= 0; r:= 0;
  101.   writeln('Testing string to formatted input');
  102.   openStrIO( f, s, forInput);
  103.   read( f, i, r);    {tp can't read booleans}
  104.   closeStrIO( f, s);
  105.   writeln('The read variables are:');
  106.   writeln( i:10, r:10:3);
  107.   write('Hit return...'); readln;
  108. END.
  109.  
  110.